欧美一区2区三区4区公司二百,国产精品婷婷午夜在线观看,自拍偷拍亚洲精品,国产美女诱惑一区二区

使用服務(wù)器端渲染優(yōu)化初始網(wǎng)頁(yè)加載和SEO

很少有開發(fā)人員將他們的網(wǎng)絡(luò)建設(shè)工作集中在客戶體驗(yàn)或整體組織營(yíng)銷策略上。為了在搜索結(jié)果中顯示您的網(wǎng)站,您需要在開發(fā)過程中通過一些最佳實(shí)踐對(duì)網(wǎng)站進(jìn)行一些更改,以獲得最佳頁(yè)面加載時(shí)間。

使用服務(wù)器端渲染優(yōu)化初始網(wǎng)頁(yè)加載和SEO

當(dāng)談到像谷歌這樣的客戶端渲染解決方案時(shí),網(wǎng)站在搜索結(jié)果中的排名是根據(jù)算法中的指標(biāo)進(jìn)行的,其中網(wǎng)站爬蟲會(huì)識(shí)別出針對(duì)特定搜索展示的最佳內(nèi)容。網(wǎng)頁(yè)的 SEO 方面將提升整個(gè)網(wǎng)站在搜索引擎中的排名。根據(jù)他們的說法,其中一項(xiàng)指標(biāo)是頁(yè)面加載時(shí)間。較小的頁(yè)面加載時(shí)間或站點(diǎn)加載時(shí)間表明用戶更傾向于在網(wǎng)站上而不是在加載速度較慢的站點(diǎn)上花費(fèi)時(shí)間。

通常,當(dāng)用戶打開網(wǎng)站時(shí),瀏覽器向服務(wù)器發(fā)出請(qǐng)求,服務(wù)器通過發(fā)送沒有任何內(nèi)容或加載屏幕的單個(gè) HTML 文件來響應(yīng),直到瀏覽器獲取所有元素。這基本上意味著向用戶呈現(xiàn)一個(gè)空白頁(yè)面,直到內(nèi)容被提取和編譯,然后才被呈現(xiàn)以供顯示。

客戶端框架或 CSR 的工作方式是,緩慢的初始加載有助于后續(xù)頁(yè)面快速加載。但是,與服務(wù)器的通信僅用于獲取運(yùn)行時(shí)數(shù)據(jù)。這可能對(duì)獲得網(wǎng)站流量非常不利。對(duì)于大多數(shù)用戶網(wǎng)絡(luò)連接來說,這個(gè)過程很慢,迫使他們停止與您的網(wǎng)頁(yè)互動(dòng)并轉(zhuǎn)向另一個(gè)網(wǎng)頁(yè)。

它最終會(huì)使您的網(wǎng)頁(yè)在搜索頁(yè)面結(jié)果中的位置較低。由于網(wǎng)站性能不佳,該應(yīng)用程序幾乎沒有機(jī)會(huì)在社交媒體上被推薦。

CSR 的問題和丟失的功能

1. 搜索引擎不支持渲染 JavaScript

Angular 單頁(yè)應(yīng)用程序幾乎會(huì)將空的 html 頁(yè)面作為源代碼,如下所示。唯一的特殊元素是 app-root 元素,它是 Angular 應(yīng)用程序的根元素。實(shí)際內(nèi)容通過 java 腳本進(jìn)入這個(gè)根元素。

使用服務(wù)器端渲染優(yōu)化初始網(wǎng)頁(yè)加載和SEO

像 Google 及其 Googlebot 這樣的搜索引擎不支持呈現(xiàn) JavaScript,并且以 JavaScript 顯示的內(nèi)容不會(huì)被網(wǎng)絡(luò)爬蟲注意到,因此該網(wǎng)站不會(huì)在搜索結(jié)果中可見。

2. 第一個(gè)有意義的頁(yè)面

從第一頁(yè)開始到有意義的可見頁(yè)面,任何具有 CSR 的單頁(yè)應(yīng)用程序都可能需要一些時(shí)間(至少 2 秒或 3 秒)來加載第一個(gè)有意義的頁(yè)面。但是如果頁(yè)面在 2 或 3 秒內(nèi)沒有加載,大多數(shù)用戶會(huì)離開頁(yè)面。

使用服務(wù)器端渲染優(yōu)化初始網(wǎng)頁(yè)加載和SEO

3.現(xiàn)場(chǎng)預(yù)覽

站點(diǎn)和頁(yè)面預(yù)覽會(huì)吸引用戶打開您的博客或帖子。無論我們是在社交媒體上發(fā)布博客還是通過網(wǎng)絡(luò)通信平臺(tái)分享它們,它們都會(huì)獲取內(nèi)容以生成預(yù)覽,以便用戶可以在新聞源中看到它。但是當(dāng)我們的頁(yè)面中沒有內(nèi)容時(shí),就無法生成提要。這是因?yàn)樵谶@樣的應(yīng)用程序中,源代碼的根元素是空的,沒有內(nèi)容。

使用服務(wù)器端渲染優(yōu)化初始網(wǎng)頁(yè)加載和SEO

用SSR代替CSR,讓網(wǎng)站對(duì)SEO有效

顯然,企業(yè)社會(huì)責(zé)任在許多情況下并不理想,我們可能需要找到另一種解決方案來規(guī)避這些問題。然而,它們可以通過服務(wù)器端渲染 (SSR) 來克服。

作為解決上述問題的第一步,我們應(yīng)該首先不要將根元素留空。這樣我們就可以在服務(wù)器上動(dòng)態(tài)渲染根元素內(nèi)容。因此,搜索引擎和站點(diǎn)預(yù)覽可以看到有意義的內(nèi)容。在此之后,角度開始并接管頁(yè)面。然后應(yīng)用程序?qū)?dòng)并運(yùn)行并照常工作。

所有這些都可以通過服務(wù)器端渲染(SSR)來實(shí)現(xiàn)。使用 SSR,當(dāng)用戶打開應(yīng)用程序時(shí),瀏覽器會(huì)向服務(wù)器發(fā)出請(qǐng)求,響應(yīng)將準(zhǔn)備好提供 HTML。

使用服務(wù)器端渲染優(yōu)化初始網(wǎng)頁(yè)加載和SEO

服務(wù)器端呈現(xiàn) (SSR) 為應(yīng)用程序提供了通過在服務(wù)器而不是瀏覽器上顯示網(wǎng)頁(yè)來在瀏覽器中呈現(xiàn)網(wǎng)頁(yè)的能力。服務(wù)器端向客戶端發(fā)送一個(gè)完全呈現(xiàn)的頁(yè)面。客戶端的 JavaScript 包接管并允許 SPA 框架運(yùn)行。

SSR 可以通過 Angular Universal 實(shí)現(xiàn) Angular 應(yīng)用,React 的 Next.js 實(shí)現(xiàn) React 應(yīng)用。

使用 Angular Universal 啟用服務(wù)器端渲染

Angular Universal 技術(shù)在服務(wù)器上呈現(xiàn) Angular 應(yīng)用程序。我們可以通過 @angular/platform-server 包獲得它。

一個(gè)普通的 Angular 應(yīng)用程序在瀏覽器中執(zhí)行,在 DOM 中呈現(xiàn)頁(yè)面以響應(yīng)用戶操作。Angular Universal 在服務(wù)器上執(zhí)行,生成靜態(tài)應(yīng)用程序頁(yè)面,然后在客戶端引導(dǎo)。這意味著應(yīng)用程序通常會(huì)更快地呈現(xiàn),讓用戶有機(jī)會(huì)在應(yīng)用程序完全交互之前查看應(yīng)用程序布局。(參考:https://angular.io/guide/universal)

在旁注中,可能會(huì)注意到服務(wù)器端渲染不會(huì)提高應(yīng)用程序的性能,但可以讓搜索引擎和第三方社交媒體服務(wù)訪問它。

服務(wù)器端渲染骨架

AppModule導(dǎo)入BrowserModule用于在瀏覽器中運(yùn)行應(yīng)用程序。AppModule在啟動(dòng)應(yīng)用程序的 main.ts 文件中配置。這也稱為 webpack 構(gòu)建的入口點(diǎn)。它是標(biāo)準(zhǔn)的角度應(yīng)用程序配置。

對(duì)于服務(wù)器端渲染,我們?cè)诹硪粋€(gè)名為AppServerModule的模塊中表示整個(gè)應(yīng)用程序。該模塊從angular.main.server.ts導(dǎo)入本機(jī)ServerModule,它將被創(chuàng)建為第二個(gè) webpack 構(gòu)建(即服務(wù)器構(gòu)建)的入口點(diǎn)。

簡(jiǎn)而言之,我們將有兩個(gè)構(gòu)建,一個(gè)用于瀏覽器,另一個(gè)用于服務(wù)器。

使用服務(wù)器端渲染優(yōu)化初始網(wǎng)頁(yè)加載和SEO

設(shè)置 Angular 通用

我們首先使用以下命令將 Angular Universal 添加到您的應(yīng)用程序中:ng add @nguniversal/express-engine/clientProject ssr-playround

上述命令添加/修改以下文件:

  • AppServerModule.ts
  • 主服務(wù)器.ts
  • 應(yīng)用模塊.ts
  • angular.json(構(gòu)建選項(xiàng))
  • 包.json
  • tsconfig.server.json

構(gòu)建應(yīng)用程序

下一步,我們?yōu)閼?yīng)用程序構(gòu)建客戶端和服務(wù)器。客戶端和服務(wù)器的構(gòu)建過程不同,因?yàn)檫@兩個(gè)平臺(tái)都不同。

使用服務(wù)器端渲染優(yōu)化初始網(wǎng)頁(yè)加載和SEO

構(gòu)建完成后,我們可以在“dist”文件夾下看到客戶端和服務(wù)器的兩個(gè)子文件夾。

使用服務(wù)器端渲染優(yōu)化初始網(wǎng)頁(yè)加載和SEO

接下來我們需要一個(gè) Node.js 服務(wù)器來執(zhí)行以下功能:

  • 預(yù)渲染應(yīng)用程序并在請(qǐng)求進(jìn)入時(shí)交付生成的 HTML
  • 通過 Web 服務(wù)器提供應(yīng)用程序包

設(shè)置服務(wù)器代碼的步驟

  • 設(shè)置 Express 服務(wù)器
  • 從瀏覽器文件夾靜態(tài)提供文件。

現(xiàn)在我們來到設(shè)置中最有趣的部分,即設(shè)置 Express 引擎以呈現(xiàn) HTML。

  • 注冊(cè) ngExpressEngine,這是一個(gè)腳本引擎,它告訴 Express 如何呈現(xiàn)特定的 HTML。(注冊(cè)名為“html”的“視圖”引擎)。
    使用服務(wù)器端渲染優(yōu)化初始網(wǎng)頁(yè)加載和SEO
  • 告訴 Express 在請(qǐng)求進(jìn)來以及需要呈現(xiàn)某些內(nèi)容時(shí)使用引擎。這將是路線。(并非每條路由都可以通過靜態(tài)服務(wù)來處理)。
    使用服務(wù)器端渲染優(yōu)化初始網(wǎng)頁(yè)加載和SEO

Express 采用 index.html 文件,該文件是空的,并將 angular 帶入該頁(yè)面以引導(dǎo)應(yīng)用程序,就像它在瀏覽器中一樣。一旦 index.html 準(zhǔn)備好,它就會(huì)自動(dòng)返回給客戶端。

使用 NgUniversal Express 原理圖時(shí),會(huì)自動(dòng)處理上述基本行為。(typescript 到 JavaScript 的編譯和打包將由已經(jīng)配置好的 webpack 完成)。

編譯和捆綁服務(wù)器進(jìn)程的命令:npm run compile:server

使用以下命令啟動(dòng)服務(wù)器:node dist/server

現(xiàn)在我們的應(yīng)用程序已經(jīng)啟動(dòng)并運(yùn)行服務(wù)器端渲染,并且可以通過 localhost:4000 打開以通過視圖源查看生成的 HTML。

使用 SSR 生成的 HTML 代碼:

使用服務(wù)器端渲染優(yōu)化初始網(wǎng)頁(yè)加載和SEO

完成這些步驟后,終于可以在搜索引擎上找到我們的網(wǎng)頁(yè)詳情了。總之,對(duì)于任何面向公眾的動(dòng)態(tài)內(nèi)容渲染應(yīng)用程序,我們可以選擇服務(wù)器端渲染作為解決方案以獲得更好的內(nèi)容覆蓋。但是,在為您的應(yīng)用程序選擇解決方案時(shí),將優(yōu)缺點(diǎn)進(jìn)行對(duì)比總是一個(gè)好主意。

優(yōu)點(diǎn):

  • 初始內(nèi)容加載 SSR 用于 SEO 和社交媒體共享
  • 提高感知性能
  • 它適用于靜態(tài)網(wǎng)站
  • 通過 CLI 的簡(jiǎn)單工具

缺點(diǎn):

  • SSR 始終需??要 Node.js 或其包裝器
  • 頻繁的服務(wù)器請(qǐng)求
  • 開始頁(yè)面內(nèi)交互的整體緩慢頁(yè)面呈現(xiàn)
  • 整頁(yè)重新加載

使用 SSR 與 CSR 相比,使用 SSR 的優(yōu)缺點(diǎn)可以通過將其比喻為超市和餐館來描述。使用客戶端渲染,您可以去超市一次,然后花時(shí)間四處走動(dòng)并挑選食品以備存本月。在最初的消費(fèi)之后,在家中的每頓飯都可以按需提供食物。

但是對(duì)于服務(wù)器端渲染,渲染一個(gè)頁(yè)面元素就像你每次想吃飯時(shí)開車去餐廳一樣。每頓飯你都會(huì)來回走動(dòng),但它會(huì)立即讓人飽足,并且不需要大量的初始準(zhǔn)備時(shí)間來購(gòu)買食材。實(shí)際上,SSR 只是提高了您的網(wǎng)站/應(yīng)用程序在搜索結(jié)果中的性能。這最終會(huì)在更大的業(yè)務(wù)場(chǎng)景中得到回報(bào)。

文章鏈接: http://m.qzkangyuan.com/12295.html

文章標(biāo)題:使用服務(wù)器端渲染優(yōu)化初始網(wǎng)頁(yè)加載和SEO

文章版權(quán):夢(mèng)飛科技所發(fā)布的內(nèi)容,部分為原創(chuàng)文章,轉(zhuǎn)載請(qǐng)注明來源,網(wǎng)絡(luò)轉(zhuǎn)載文章如有侵權(quán)請(qǐng)聯(lián)系我們!

聲明:本站所有文章,如無特殊說明或標(biāo)注,均為本站原創(chuàng)發(fā)布。任何個(gè)人或組織,在未征得本站同意時(shí),禁止復(fù)制、盜用、采集、發(fā)布本站內(nèi)容到任何網(wǎng)站、書籍等各類媒體平臺(tái)。如若本站內(nèi)容侵犯了原著者的合法權(quán)益,可聯(lián)系我們進(jìn)行處理。

給TA打賞
共{{data.count}}人
人已打賞
服務(wù)器vps推薦

如何托管游戲服務(wù)器?

2022-11-8 11:49:49

IDC云庫(kù)

如何修復(fù)WordPress需要更新數(shù)據(jù)庫(kù)循環(huán)

2022-11-8 11:58:09

0 條回復(fù) A文章作者 M管理員
    暫無討論,說說你的看法吧
?
個(gè)人中心
購(gòu)物車
優(yōu)惠劵
今日簽到
有新私信 私信列表
搜索
主站蜘蛛池模板: 邯郸县| 岳普湖县| 静海县| 万年县| 墨竹工卡县| 漳浦县| 周至县| 句容市| 吉水县| 京山县| 渭南市| 应用必备| 隆回县| 疏附县| 集安市| 江西省| 清水河县| 永善县| 西乡县| 巢湖市| 广德县| 临泉县| 股票| 庄河市| 红原县| 永安市| 平果县| 南澳县| 永靖县| 璧山县| 岳阳市| 邢台县| 临桂县| 赤壁市| 乌拉特后旗| 青州市| 平江县| 罗定市| 怀安县| 安西县| 峨边|